using System;
using System.Collections;

namespace Eshouse.Entity
{
	

	/// <summary>
	/// PersonInfo object for NHibernate mapped table 'PersonInfo'.
	/// </summary>
	public class PersonInfo
	{
		#region Member Variables
		
		protected string _id;
		protected string _pSName;
		protected string _pSNickname;
		protected bool _pSSex;
		protected string _pSEmail;
		protected string _pSTel1;
		protected string _pSTel2;
		protected string _pSTel3;
		protected string _pSMobilePhone1;
		protected string _pSMobilePhone2;
		protected string _pSMobilePhone3;
		protected DateTime _pSWorkDate;
		protected string _pSUserName;
		protected string _pSPassword;
		protected DateTime _pSRegTime;
		protected DateTime _pSLoginTime;
		protected DicTable _region;
		protected IList _hSReleasedPsIdHouseInfos;

		#endregion

		#region Constructors

		public PersonInfo() { }

		public PersonInfo( string pSName, string pSNickname, bool pSSex, string pSEmail, string pSTel1, string pSTel2, string pSTel3, string pSMobilePhone1, string pSMobilePhone2, string pSMobilePhone3, DateTime pSWorkDate, string pSUserName, string pSPassword, DateTime pSRegTime, DateTime pSLoginTime, DicTable region )
		{
			this._pSName = pSName;
			this._pSNickname = pSNickname;
			this._pSSex = pSSex;
			this._pSEmail = pSEmail;
			this._pSTel1 = pSTel1;
			this._pSTel2 = pSTel2;
			this._pSTel3 = pSTel3;
			this._pSMobilePhone1 = pSMobilePhone1;
			this._pSMobilePhone2 = pSMobilePhone2;
			this._pSMobilePhone3 = pSMobilePhone3;
			this._pSWorkDate = pSWorkDate;
			this._pSUserName = pSUserName;
			this._pSPassword = pSPassword;
			this._pSRegTime = pSRegTime;
			this._pSLoginTime = pSLoginTime;
			this._region = region;
		}

		#endregion

		#region Public Properties

		public virtual string Id
		{
			get {return _id;}
			set
			{
				if ( value != null && value.Length > 64)
					throw new ArgumentOutOfRangeException("Invalid value for Id", value, value.ToString());
				_id = value;
			}
		}

		public virtual  string PSName
		{
			get { return _pSName; }
			set
			{
				if ( value != null && value.Length > 64)
					throw new ArgumentOutOfRangeException(" Invalid value for PSName", value, value.ToString());
				_pSName = value;
			}
		}

		public virtual  string PSNickname
		{
			get { return _pSNickname; }
			set
			{
				if ( value != null && value.Length > 64)
					throw new ArgumentOutOfRangeException(" Invalid value for PSNickname", value, value.ToString());
				_pSNickname = value;
			}
		}

		public virtual  bool PSSex
		{
			get { return _pSSex; }
			set { _pSSex = value; }
		}

		public virtual  string PSEmail
		{
			get { return _pSEmail; }
			set
			{
				if ( value != null && value.Length > 64)
					throw new ArgumentOutOfRangeException(" Invalid value for PSEmail", value, value.ToString());
				_pSEmail = value;
			}
		}

		public virtual  string PSTel1
		{
			get { return _pSTel1; }
			set
			{
				if ( value != null && value.Length > 16)
					throw new ArgumentOutOfRangeException(" Invalid value for PSTel1", value, value.ToString());
				_pSTel1 = value;
			}
		}

		public virtual  string PSTel2
		{
			get { return _pSTel2; }
			set
			{
				if ( value != null && value.Length > 16)
					throw new ArgumentOutOfRangeException(" Invalid value for PSTel2", value, value.ToString());
				_pSTel2 = value;
			}
		}

		public virtual  string PSTel3
		{
			get { return _pSTel3; }
			set
			{
				if ( value != null && value.Length > 16)
					throw new ArgumentOutOfRangeException(" Invalid value for PSTel3", value, value.ToString());
				_pSTel3 = value;
			}
		}

		public virtual  string PSMobilePhone1
		{
			get { return _pSMobilePhone1; }
			set
			{
				if ( value != null && value.Length > 16)
					throw new ArgumentOutOfRangeException(" Invalid value for PSMobilePhone1", value, value.ToString());
				_pSMobilePhone1 = value;
			}
		}

		public virtual  string PSMobilePhone2
		{
			get { return _pSMobilePhone2; }
			set
			{
				if ( value != null && value.Length > 16)
					throw new ArgumentOutOfRangeException(" Invalid value for PSMobilePhone2", value, value.ToString());
				_pSMobilePhone2 = value;
			}
		}

		public virtual  string PSMobilePhone3
		{
			get { return _pSMobilePhone3; }
			set
			{
				if ( value != null && value.Length > 16)
					throw new ArgumentOutOfRangeException(" Invalid value for PSMobilePhone3", value, value.ToString());
				_pSMobilePhone3 = value;
			}
		}

		public virtual  DateTime PSWorkDate
		{
			get { return _pSWorkDate; }
			set { _pSWorkDate = value; }
		}

		public virtual  string PSUserName
		{
			get { return _pSUserName; }
			set
			{
				if ( value != null && value.Length > 64)
					throw new ArgumentOutOfRangeException(" Invalid value for PSUserName", value, value.ToString());
				_pSUserName = value;
			}
		}

		public virtual  string PSPassword
		{
			get { return _pSPassword; }
			set
			{
				if ( value != null && value.Length > 32)
					throw new ArgumentOutOfRangeException(" Invalid value for PSPassword", value, value.ToString());
				_pSPassword = value;
			}
		}

		public virtual  DateTime PSRegTime
		{
			get { return _pSRegTime; }
			set { _pSRegTime = value; }
		}

		public virtual  DateTime PSLoginTime
		{
			get { return _pSLoginTime; }
			set { _pSLoginTime = value; }
		}

		public virtual DicTable region
		{
			get { return _region; }
			set { _region = value; }
		}

		public virtual IList HS_ReleasedPsIdHouseInfos
		{
			get
			{
				if (_hSReleasedPsIdHouseInfos==null)
				{
					_hSReleasedPsIdHouseInfos = new ArrayList();
				}
				return _hSReleasedPsIdHouseInfos;
			}
			set { _hSReleasedPsIdHouseInfos = value; }
		}

		

		#endregion
	}
	
}